$(function () {
    // 1. 按下回车 把完整数据 存储到本地存储里面
    // 存储的数据格式  var todolist = [{title: "xxx", done: false}]
    load()
    $("#title").on("keydown", function (event) {
        if (event.keyCode === 13) {
            if ($(this).val() === "") {
                alert("请输入您要的操作")
            } else {
                // 先读取本地存储原来的数据
                var local = getDate()
                // console.log(local)
                // 把local数组进行更新数据 把最新的数据追加给local数组
                local.push({
                    title: $(this).val(),
                    done: false
                })
                // 把这个数组local 存储给本地存储
                saveDate(local)
                // 2. toDoList 本地存储数据渲染加载到页面
                load()
                $(this).val("")
            }
        }
    })
    // 3. toDoList 删除操作
    $("ol, ul").on("click", "a", function () {
        // 先获取本地存储
        var data = getDate()
        // 修改数据
        var index = $(this).attr("id")
        data.splice(index, 1); //删除data数组中下标index开始的1个数据
        // 保存到本地存储
        saveDate(data)
        // 重新渲染页面
        load()
    })
    //toDoList 正在进行和已完成选项操作
    $("ol, ul").on("click", "input", function () {
        // 先获取本地存储
        var data = getDate()
        // 修改数据
        var index = $(this).siblings('a').data('id')
        console.log(index)
        data[index].done = $(this).prop('checked')
        // console.log(data)
        //存储
        saveDate(data)
        //渲染
        load()
    })


    // 读取本地存储的数据 
    function getDate() {
        var data = localStorage.getItem("todolist")
        if (data !== null) {
            // 本地存储里面的数据是字符串格式的 但是我们需要的是对象格式的
            return JSON.parse(data) //字符串转换成对象
        } else {
            return []
        }
    }
    //保存本地存储的数据
    function saveDate(data) {
        //本地存储里面只能存储字符串的数据格式 把我们的数组对象转换为字符串格式 JSON.stringify()
        localStorage.setItem('todolist', JSON.stringify(data))
    }
    //渲染页面函数
    function load() {

        //读取数据
        var data = getDate()
        //遍历之前先清空ol
        $('ol,ul').empty()
        var todoCount = 0 //正在进行的
        var doneCount = 0 //已经完成的
        //读取的数据是数组，需要遍历
        //遍历的时候给每个li添加自定义属性id
        $.each(data, function (index, item) {
            if (item.done) {
                doneCount++
                $('ul').prepend(`
                    <li>
                    <input type='checkbox' checked>
                    <p>${item.title}</p>
                    <a href='javascript:;' data-id='${index}'></a>
                    </li>`)

            } else {
                $('ol').prepend(`
                    <li>
                    <input type='checkbox'>
                    <p>${item.title}</p>
                    <a href='javascript:;' data-id='${index}'></a>
                    </li>`)
                todoCount++
            }

        })
        $("#todocount").text(todoCount)
        $("#donecount").text(doneCount)
    }

})